互联网网站一般首页的访问量大,为提高首页的访问效率,首页的内容都可以实现静态化,在互联网项目中页面常用html。当浏览器访问时,将浏览器的缓存策略和生成静态页面的周期设为一致,可使访问效率大大提升,再同时配合CDN处理图片、js和css等资源,可以在首页访问时,理论完全脱离数据库降低应用压力。
Freemarker 是目前流行的生成静态页面的模板引擎,使用预定义的模板ftl文件生成静态的html。
这样这个html既拥有页面的样式又拥有后台数据,以达到静态化访问的目的。
原理图
目录结构
导入jar包
Servlet中的内容
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Map map = new HashMap(); map.put("url", "1.html"); map.put("name", "Free Marker Learning Document"); request.setAttribute("user", "Lucas Su"); request.setAttribute("doc", map); request.setAttribute("sex", "男"); request.getRequestDispatcher("/ftl/test.ftl").forward(request, response); }
ftl文件
Welcome! Welcome ${user?default('')}!
This is your document:
${doc.name?default('')}性别:${sex}
web.xml中的配置
FreemarkerTest freemarker freemarker.ext.servlet.FreemarkerServlet TemplatePath / NoCache true ContentType text/html;charset=UTF-8 template_update_delay 0 default_encoding UTF-8 number_format 0.######## 1 freemarker *.ftl FMServlet Test1.FMServlet FMServlet /FMServlet.do